Asp.net

如何將 javascript 文件的服務限制為僅經過身份驗證的使用者?

  • January 6, 2020

我有一個使用 Identity 2 進行身份驗證的 WebAPI 2 / AngularJS SPA 應用程序。我的程式碼在本地儲存了一個用於身份驗證的令牌。我想實現允許我的應用程序在我的初始 index.html 頁面下載後為經過身份驗證的使用者請求額外 javascript 的功能。

有沒有辦法讓我的伺服器程式碼只將javascript 文件分發給經過身份驗證和授權的使用者?類似於控制器操作方法僅將數據返回給經過身份驗證和授權的使用者的方式。

您可以通過在 web.config 上進行設置來強制靜態文件通過伺服器以確保身份驗證:

網頁配置

<compilation>
   <buildProviders>
       <add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
       <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" />
        <add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider"/>
   </buildProviders>
</compilation>

<system.webServer>
    <handlers>
        <add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG"   type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" />
        <add name="HTM" path="*.htm" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
</system.webServer>

這將允許我<authorization>在我的 web.config 中設置我想要的位置,例如:

位置:腳本/安全/展示

<authorization>
 <allow roles="demo" />
</authorization>

或位置:腳本/安全/

<authorization>
  <deny users="?" />
</authorization>

http://msdn.microsoft.com/en-us/library/h0e51sw9(v=vs.85).aspx

最近有一個類似的問題是否有幫助:

安全的 Angular 應用程序訪問和 Web API 服務

引用自:https://stackoverflow.com/questions/23879769