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
,則範例會將目前 HttpContextGenericPrincipal 的屬性設定User為物件,其中 Identity 對象的屬性GenericPrincipal是GenericIdentity屬性值為 “default” 的物件Name。
注意
事件之前AuthorizeRequest會引發DefaultAuthentication_OnAuthenticate事件。 因此,如果您將 User 目前 HttpContext 的屬性設定為自定義身分識別,它可能會影響應用程式的行為。 例如,如果您使用 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,將目前 HttpContext 的屬性設定User為自定義IPrincipal物件。 如果您未指定 屬性所參考之 屬性的值User,會將 DefaultAuthenticationModule 的 HttpContext 屬性設定User為GenericPrincipal不包含使用者資訊的物件。HttpContextContext
DefaultAuthentication_OnAuthenticate 事件會在 事件之後AuthenticateRequest和 事件之前AuthorizeRequest引發。 如果您有一個 authorization
相依於使用者名稱來拒絕或允許存取應用程式的區段,修改 User 目前 HttpContext 屬性可能會影響應用程式的行為。 當您在設定中指定 authorization
區段時,請務必考慮您在DefaultAuthentication_OnAuthenticate事件期間設定的用戶名稱。