簡體   English   中英

ASP.NET MVC 4中的表單身份驗證和AllowAnonymous

[英]Form authentication and AllowAnonymous in ASP.NET MVC 4

我在asp.net mvc Web應用程序中使用表單身份驗證,並且我想根據設備(電話,平板電腦或台式機)將用戶重定向到適當的頁面,問題是重定向有效,但用戶必須登錄。 我想在登錄之前重定向。 我在Home控制器(負責重定向的控制器)上使用了AllowAnonymous過濾器,但它似乎不起作用。

我的web.config:

<authentication mode="Forms">
    <forms loginUrl="Login" defaultUrl="/" timeout="40320"/> <!-- monthly -->
</authentication>
<authorization>
    <deny users="?"/>
</authorization>

* 更新: *奇怪的是[AllowAnonymous]可在其他控制器中使用,但不適用於默認的HomeController!

謝謝。

我認為您需要為控制器添加[Authorize]屬性,並為您的操作添加[AllowAnonymous]。 調試整個過程,並確保應用程序不會引發任何異常。

這對你有幫助

我認為您需要在查看方法中添加[Authorize]屬性

這對你有幫助

http://msdn.microsoft.com/en-us/library/ff398049%28v=vs.100%29.aspx

為了允許用戶無需登錄即可查看特定頁面,您需要添加一個“位置”元素,專門授權應用程序的特定頁面或區域。

如果您有一個名為“ / landingpage / android”的頁面,則將其添加到您的web.config中,緊接在“ system.web”的關閉標記之后

<location path="landingpage/android">
   <system.web>
       <authorization>
           <allow users="*" />
       </authorization>
   </system.web>
</location>

您可以將多個位置元素添加到web.config文件中。

為了強制每個用戶登錄,您應該具有一個在所有其他控制器中派生的BaseController並在類級別標記[Authorize],或者可以使用[Authorize]屬性標記動作或控制器。 僅在登錄頁面上保留屬性[AllowAnonymous],以便所有人都可以訪問登錄頁面

暫無
暫無

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

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