簡體   English   中英

ASP.Net表單身份驗證401.2未經授權

[英]ASP.Net Form authentication 401.2 Unauthorized

我遇到一個讓我發瘋的問題。 我已經在Visual Studio 2015中使用預定義的模板創建了一個ASP.Net項目。 目標框架是4.5

當我添加表單身份驗證時,我得到的只是一條401.2消息。

這是配置應用程序的方式:我創建了Login.aspx頁面。 然后在web.config中,在system.web部分中添加了以下屬性:

 <authentication mode="Forms">
      <forms loginUrl="Login.aspx"
             protection="All"
             timeout="30"
             name=".ASPXAUTH"
             path="/"
             defaultUrl="Default.aspx" />
    </authentication>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>

我檢查了其他一些帖子,但到目前為止沒有一個幫助我:

這一項不適用: 拒絕訪問-401.2:未經授權的錯誤

這看起來很有希望,但對我的應用程序卻沒有雪茄: 使用IIS8.0 Express(vs2013)的.NET表單身份驗證(vs2013)-401.2 。:未經授權:由於服務器配置,登錄失敗

這讓我開始思考: https : //stackoverflow.com/a/35925125/980201

當我檢查IIS(Express)日志文件時,這就是我得到的:

2017-02-24 19:29:22 ::1 GET / .... - 302
2017-02-24 19:29:22 ::1 GET /Login ReturnUrl=%2f .... - 401

Login.aspx中的.aspx在哪里?

因此,我刪除了所有FriendlyURL內容,但再沒有運氣了。 在最后的嘗試中,我將配置更改為:

<forms loginUrl="LoginXXX.aspx"

這就是我得到的:

2017-02-24 19:45:37 ::1 GET / ... - 302
2017-02-24 19:45:37 ::1 GET /LoginXXX.aspx ReturnUrl=%2f 57745 - 404

為什么.Net重定向到login而不是login.aspx? 對我的應用程序和配置文件還有其他想法嗎?

非常感謝!

問候羅蘭

編輯一些意外事件:當我使用Login.aspx.cs作為當前選項卡在VS中開始調試時,它失敗。 當我從Default.aspx.cs開始調試時,它可以工作。 將項目的“ 開始操作”設置為Default.aspx可以解決此問題。 但是,當網站運行時,將URL更改為login.aspx會使它再次失敗。

為什么? 對我來說,只有每個人都可以看到的頁面無法直接導航對我來說沒有意義。

如果使用Visual Studio創建默認項目,然后使用該默認項目啟用表單身份驗證,則問題是默認情況下禁用了表單身份驗證,因為Identity Framework是VS 2015中的默認身份驗證機制。

在web.config中查找此條目

<system.webServer>
    <modules>
        <remove name="FormsAuthentication" />
    </modules>
</system.webServer>

並刪除“刪除”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM