DefaultAuthenticationEventArgs(HttpContext) 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 DefaultAuthenticationEventArgs 類別的新執行個體。
public:
DefaultAuthenticationEventArgs(System::Web::HttpContext ^ context);
public DefaultAuthenticationEventArgs(System.Web.HttpContext context);
new System.Web.Security.DefaultAuthenticationEventArgs : System.Web.HttpContext -> System.Web.Security.DefaultAuthenticationEventArgs
Public Sub New (context As HttpContext)
參數
- context
- HttpContext
事件的背景。
範例
以下程式碼範例利用DefaultAuthentication_OnAuthenticate事件來測試電流HttpContext的性質是否User為 null。 若屬性為 null,範例將當前HttpContext值的屬性設User為GenericPrincipal物件,該Identity物件的性質GenericPrincipal為GenericIdentity「Name預設值」的物件。
備註
DefaultAuthentication_OnAuthenticate事件會在活動前AuthorizeRequest提出。 因此,如果你將 current HttpContext 的屬性設User為自訂身份,可能會影響應用程式的行為。 例如,如果你使用這個 FormsAuthentication 類別,並且確保只有經過認證的使用者才能存取你的網站,透過使用 authorization 該區段並指定 <deny users="?" />,你會忽略 deny 這個範例中的元素,因為使用者會有一個名為「default」的名稱。 相反地,你應該指定 <deny users="default" /> 只有經過認證的使用者才能存取你的網站。
public void DefaultAuthentication_OnAuthenticate(object sender,
DefaultAuthenticationEventArgs args)
{
if (args.Context.User == null)
args.Context.User =
new System.Security.Principal.GenericPrincipal(
new System.Security.Principal.GenericIdentity("default"),
new String[0]);
}
Public Sub DefaultAuthentication_OnAuthenticate(sender As Object, _
args As DefaultAuthenticationEventArgs)
If args.Context.User Is Nothing Then
args.Context.User = _
new System.Security.Principal.GenericPrincipal( _
new System.Security.Principal.GenericIdentity("default"), _
new String(0) {})
End If
End Sub
備註
物件DefaultAuthenticationModule利用電流HttpContext構造一個DefaultAuthenticationEventArgs物件,並將其傳遞給DefaultAuthentication_OnAuthenticate事件。
你可以利用Context提供給 DefaultAuthentication_OnAuthenticate 事件的物件屬性DefaultAuthenticationEventArgs,將 current HttpContext 的屬性設定User為自訂IPrincipal物件。 如果你沒有指定User該屬性所Context參考的屬性HttpContext值,該屬性會DefaultAuthenticationModule設定UserHttpContextGenericPrincipal為一個不包含使用者資訊的物件。
DefaultAuthentication_OnAuthenticate事件會在活動結束AuthenticateRequest後及活動前AuthorizeRequest提出。 如果你有一個 authorization 區塊依賴使用者名稱來拒絕或允許存取你的應用程式,修改 User 當前 HttpContext 的屬性可能會影響應用程式的行為。 在設定中指定authorization區段時,務必考慮你在DefaultAuthentication_OnAuthenticate事件中設定的使用者名稱。