簡體   English   中英

ASP.NET MVC-使用授權屬性

[英]ASP.NET MVC - use authorize attribute

我有一個ASP.NET MVC網站。

我並沒有真正管理用戶,但是我登錄了外部API,然后存儲了"ASPXFORMSAUTH" cookie。

這是WCF服務。 在我的控制器中,我致電:

MyWcfServiceClient.Login()

在AfterReceiveReply中,我將服務的響應存儲在一個變量中:

cookie = httpResponse.Headers[HttpResponseHeader.SetCookie];

然后在控制器中,我得到這個cookie並使用存儲它:

Response.Cookies.Add(cookie);

我是ASP.NET MVC的初學者,但是僅當請求包含此Cookie時,我才能使用[Authorize]屬性允許訪問控制器方法嗎? [AllowAnonymous]上API登錄之前的方法。

編輯:

因此,僅添加[Authorize]屬性就可以了嗎?

我正在使用ajax調用控制器方法,而Request.Headers["Cookie"]值為.ASPXAUTH=1D415AF723......

但是我收到了ajax錯誤回調...

我想念什么嗎?

[授權]將只允許授權用戶訪問。

您可以將其放在控制器的頂部,以便將其應用於控制器上的所有功能或單個功能的前面。 盡管您只能允許特定的用戶或角色,但它比它更強大。 這里的文件

當您向整個控制器中添加了某種“授權”但想要允許所有對該控制器上的功能的訪問時,將使用allow [AllowAnonymous]。 如果控制器上沒有Authorize屬性,則不需要此屬性。 此處的示例我認為Visual Studio中的默認MVC帳戶在帳戶控制器上使用此帳戶來進行密碼保留和登錄。

我不確定,因為我之前從未嘗試過。 但是,如果您設置了正確的cookie(默認的aspx auth cookie),那么如果未經授權,AuthorizeAttribute應該會阻止您訪問控制器。 您是否嘗試過在控制器上使用authorize屬性並使用外部API登錄? 因為它可能開箱即用。

另一種選擇是通過創建自己的屬性來擴展默認屬性。 有關更多信息,請參見以下文章。

暫無
暫無

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

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