安全性 身份驗證和授權 一 之Principal

2021-07-27 13:46:55 字數 3088 閱讀 7650

為了確保應用程式的安全,安全性有幾個重要方面需要考慮。一是應用程式的使用者,訪問應用程式的是乙個真正的使用者,還是偽裝成使用者的某個人?如何確定這個使用者是可以信任的?

確保應用程式安全的使用者方面是乙個2個階段過程:

另一方面是應用程式本身。如果應用程式駐留在web提供程式上,如何禁止應用程式執行對伺服器有傷害的操作?

安全性的兩個基本支柱是身份驗證和授權。身份驗證是標識使用者的過程,授權在驗證了所標識使用者是否可以訪問特定資源之後進行。

使用標識可以驗證執行應該程式的使用者。windows indentity 類表示乙個windows使用者。如果沒有用windows賬戶標識使用者,也可以使用實現了identity介面的其他類。通過這個介面可以訪問使用者名稱,該使用者是否通過身份驗證,以及驗證型別等資訊。

principal是乙個包含使用者的標識和使用者的所屬角色的物件。iprincipal介面定義了identity屬性和isinrole方法,identity屬性返回identity物件;在isinrole方法中,可以驗證使用者是否是指定角色的乙個成員。角色是有相同安全許可權的使用者集合,同時它是使用者的管理單元。角色可以是windows組或自己定義的乙個字串集合。

表示 windows 使用者。

命名空間:system.security.principal

程式集: mscorlib(位於 mscorlib.dll)

system.object

system.security.claims.claimsidentity

system.security.principal.windowsidentity

[serializableattribute]

[comvisibleattribute(true)]

public class windowsidentity : claimsidentity, iserializable,

ideserializationcallback, idisposable

名稱說明

windowsidentity(intptr)

為指定的 windows 帳戶標記表示的使用者初始化 windowsidentity 類的新例項。

windowsidentity(intptr, string)

為指定的 windows 帳戶標記和指定的身份驗證型別表示的使用者初始化 windowsidentity 類的新例項。

windowsidentity(intptr, string, windowsaccounttype)

為指定的 windows 帳戶標記、指定的身份驗證型別和指定的 windows 帳戶型別表示的使用者初始化 windowsidentity 類的新例項。

windowsidentity(intptr, string, windowsaccounttype, boolean)

為指定的 windows 帳戶標記、指定的身份驗證型別、指定的 windows 帳戶型別和指定的身份驗證狀態表示的使用者初始化 windowsidentity 類的新例項。

windowsidentity(serializationinfo, streamingcontext)

初始化 serializationinfo 流中的資訊所表示的使用者的 windowsidentity 類的新例項。

windowsidentity(string)

初始化以指定使用者主名稱 (upn) 表示的使用者的 windowsidentity 類的新例項。

windowsidentity(string, string)

初始化以指定使用者主名稱 (upn) 和指定身份驗證型別共同表示的使用者的 windowsidentity 類的新例項。

windowsidentity(windowsidentity)

使用指定的 windowsidentity 物件初始化 windowsidentity 類的新例項。

很顯然使用者可以很容易訪問當前使用者及其角色的詳細資訊,然後使用那些資訊決定允許或拒絕使用者執行某些動作,這就非常有好處。利用角色和windows使用者組,管理員可以完成標準使用者管理工具所能完成的工作,這樣在使用者的角色改變時,通常可以避免**的更改。

c api身份驗證和授權

1.全域性 config.filters.add new authorizeattribute 2.控制器級別 authorize public class hellocontroller apicontroller 3.方法級別 public class hellocontroller apico...

mongo的身份驗證和授權

剛裝好的mongo,準備登陸進去測一把的,結果就給我報這個錯,鄙人是新手,還不太清楚這個,現學一下 auth true 這裡的意思是開啟身份驗證,有使用者,密碼,角色,許可權之類的東西,如果把auth設為false的話,那麼mongo就相當於裸奔了,誰都可以連進來。如果伺服器安全性挺高的,裸奔倒也不...

使用配製檔案定製身份驗證和基於角色的安全

這裡使用的例子和前提條件可以參考以前的一篇文章 asp.net實現匿名訪問控制 裡面使用的forms身份驗證有個缺點,如果能將使用者的驗證上公升到基於角色的驗證即可減少很多麻煩,它只會建立乙個空的genericprincipal物件,僅包含初始化過的 formsidentity 物件。如果要在應用程...