91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET身份驗證的探討

發布時間:2020-07-29 03:34:27 來源:網絡 閱讀:696 作者:ljf52czz 欄目:編程語言

最近項目要調用其他人的登錄API程序,其中涉及到了身份驗證(之前沒有用過ASP.NET的身份驗證),開始調試時身份驗證都是有值的,調試時

ASP.NET身份驗證的探討

 PC-5\Administrator為本地計算機名字)

但是到了真正發布到IIS時,身份驗證的值卻沒有了。后來查看了一些文章,才發現這是和ASP.NET的身份驗證有關。

     微軟官方對ASP.NET的身份驗證分為以下幾種,
<authentication 
   mode="[Windows|Forms|Passport|None]"> 

其中屬性描述為:

屬性

說明

mode

必選的屬性。

指定應用程序的默認身份驗證模式。此屬性可以為下列值之一。

說明

Windows

Windows 驗證指定為默認的身份驗證模式。將它與以下任意形式的 Microsoft Internet 信息服務 (IIS) 身份驗證結合起來使用:基本、摘要、集成 Windows 身份驗證 (NTLM/Kerberos) 或證書。在這種情況下,您的應用程序將身份驗證責任委托給基礎 IIS

Forms

ASP.NET 基于窗體的身份驗證指定為默認身份驗證模式。

Passport

Microsoft Passport Network 身份驗證指定為默認身份驗證模式。

None

不指定任何身份驗證。您的應用程序僅期待匿名用戶,否則它將提供自己的身份驗證。

默認值為 Windows

 

如果是使用身份驗證為Windows,由于官方說將結合IIS進行身份驗證,那么就要額外配置發布后的IIS,因為IIS默認為匿名用戶登錄,并不采用身份驗證。所以如果是本地進行調試的話,身份驗證就是使用本機的Windows身份,而發布到IIS的就是使用IIS的身份驗證,但是IIS如果未配置身份認證,默認采用匿名登錄,那么身份認證就不會起作用了。

測試代碼:

if (HttpContext.Current.User.Identity.IsAuthenticated)

         Label1.Text ="已驗證,現在身份驗證名字:" +HttpContext.Current.User.Identity.Name;

else

        Label1.Text="未驗證,現在身份驗證名字:" + HttpContext.Current.User.Identity.Name;

發布到IIS服務器沒有配置身份驗證,出現的結果:


ASP.NET身份驗證的探討

發布到IIS服務器并配置身份驗證,會出現windows登錄窗口,輸入windows用戶,

ASP.NET身份驗證的探討

出現的結果是


ASP.NET身份驗證的探討

       通過上面的測試,基本上可以明白微軟對ASP.NET的身份驗證的Windows屬性的使用。但是對于一般網站而言,并不希望為每個用戶分配windows賬戶,所以這種驗證僅適合少量安全用戶的訪問,并不適合大量的用戶訪問。

參考文獻:http://www.cnblogs.com/fish-li/archive/2012/05/07/2486840.html#_label5

                     http://msdn.microsoft.com/zh-cn/library/ff647076.aspx

 

   針對上述情況,微軟提出了ASP.NET的身份驗證屬性Forms屬性,主要針對表單驗證。簡單說,Forms身份認證就是為每個登錄到網站的用戶產生一個認證標識(一般為Cookie)。由于這種認證集成到網頁表單的提交,對用戶很方便。

具體的認證使用方法請參看:

http://www.cnblogs.com/xugang/archive/2010/12/08/1900135.html

http://www.xoc.net/works/tips/forms-authentication.asp

 

在這里還想說的是,之前由于我做的程序中使用了User.Identity.IsAuthenticated屬性進行驗證,在調試的時候還是沒有產生身份驗證。追查原因才發現原來在進行表單身份驗證的時候是需要這個方法來產生表單驗證信息的,即注冊表單身份。

FormsAuthentication.SetAuthCookie(name, true);
沒有這個方法的話,就無法產生表單身份,而且根據文章
http://www.cftea.com/c/2011/04/UQ1T0SIOTD34ZJOG.asp
說注冊表單身份后要進行跳轉后才能生效。

而對于解決User.Identity.IsAuthenticated==false User.Identity.Name==string.empty的問題,可以參考文章

http://www.cnblogs.com/godwar/archive/2008/07/21/1247890.html

 

      最后推薦各位遇到ASP.NET身份驗證的問題的朋友,可以先看看這幾篇文章,會很有收獲。
   http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591795.html
http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591796.html
   http://www.cnblogs.com/Gavinzhao/archive/2009/10/29/1591797.html
 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳市| 新源县| 千阳县| 高密市| 隆林| 庐江县| 榆社县| 易门县| 公安县| 海原县| 常德市| 若羌县| 慈溪市| 沅江市| 罗定市| 温泉县| 合江县| 白水县| 依兰县| 三江| 孟村| 抚顺县| 突泉县| 海兴县| 宜兰市| 岑巩县| 武穴市| 东海县| 陈巴尔虎旗| 大英县| 金寨县| 泾川县| 黄石市| 东宁县| 中江县| 海安县| 得荣县| 法库县| 诸城市| 富民县| 马边|