中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

合水县| 米泉市| 丹寨县| 望奎县| 荥阳市| 富阳市| 和政县| 惠安县| 博野县| 来凤县| 运城市| 张家界市| 宝坻区| 荣成市| 西畴县| 香港| 道孚县| 克拉玛依市| 桑植县| 个旧市| 永靖县| 南郑县| 错那县| 台中市| 天柱县| 封开县| 沁阳市| 齐齐哈尔市| 孟津县| 磐石市| 宁晋县| 华宁县| 揭西县| 拜泉县| 宁陕县| 湘潭县| 宜春市| 陕西省| 汾阳市| 祁东县| 汉阴县|