回答

0

Application_Start()在請求ASP.NET應用程序中的第一個資源(如頁面)時被調用。另外,在應用程序的生命週期中它只被調用一次。據說,在那個時候,你將無法授權所有的用戶。客戶端計算機上的當前Windows用戶信息由Web瀏覽器通過密碼交換提供,涉及與Web服務器 [Wiki]進行哈希處理。只有這樣你才能授權用戶。因此,User.Identity.IsAuthenticated應該在頁面加載時工作(請參閱下面的代碼)。您可以提取你需要的常用方法的邏輯,並調用它的第一次加載頁面

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (User.Identity.IsAuthenticated) 
    { 
     Page.Title = "Home page for " + User.Identity.Name; 
     // add your logic here 
    } 
    else 
    { 
     // you get here if auth failed. 
     Page.Title = "Home page for guest user."; 
    } 
} 

更多信息的更新後:

我會使用的Application_Start()檢查和如果它們不存在,則添加角色。

if (! Roles.RoleExists("Auditors")) 
      Roles.CreateRole("Auditors"); 

您可能會發現這篇文章有用:http://weblogs.asp.net/scottgu/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server

+0

您好,我想是這樣的:保護無效Application_AuthenticateRequest(對象發件人,EventArgs的){ 如果 (HttpContext.Current.User!= NULL){ 如果 (HttpContext.Current。 (HttpContext.Current.User.Identity是WindowsIdentity) var amduser = new UsuarioDB();如果(HttpContext.Current.User.Identity是WindowsIdentity) var amduser = new UsuarioDB();如果(HttpContext.Current.User.Identity是WindowsIdentity) amduser.DefinirPropriedadesUsuario(); } } } }但Current.User.Identity始終爲空 – 2014-10-30 12:26:28

+0

@ user1200656,可以試試嗎? http://stackoverflow.com/questions/1663535/httpcontext-current-user-is-null-even-though-windows-authentication-is-on – 2014-10-30 15:44:12

1

我用這個:

protected void Application_AuthenticateRequest(Object sender, EventArgs e) 
{ 
    if (HttpContext.Current.User != null) 
    { 
     if (HttpContext.Current.User.Identity.IsAuthenticated) 
     { 
      if (HttpContext.Current.User.Identity is WindowsIdentity) 
      { 
       if (string.IsNullOrEmpty(Usuario.Nome)) 
       { 

確保,在你的項目性質(ALT項目+輸入)點擊WEB檢查NTLM AUTHENTICATION。

這對我有效。現在HttpContext.Current.User.Identity不再爲空

+0

微軟不再在應用程序中推薦NTLM – 2014-10-30 16:10:31

+0

這是它工作的唯一方式,所有其他方式User.Identity.IsAuthenticated是null當從Visual Studio – 2014-10-30 16:22:36

+0

運行應用程序你可以試試這個嗎? http://stackoverflow.com/questions/1663535/httpcontext-current-user-is-null-even-though-windows-authentication-is-on – 2014-10-30 16:26:09

相關問題