我们有一个托管静态站点(只是一些 HTML、CSS、Javascript)的 Azure 网站,然后通过 AJAX 调用与我们的 Azure 移动服务通信。
我们想为这个站点添加一些非常简单的身份验证(只需一个静态用户名/密码就足够了)。
请推荐最简单的方法来做到这一点。
或者除了 Azure 网站之外,是否有更好的选择来提供静态内容?
我们有一个托管静态站点(只是一些 HTML、CSS、Javascript)的 Azure 网站,然后通过 AJAX 调用与我们的 Azure 移动服务通信。
我们想为这个站点添加一些非常简单的身份验证(只需一个静态用户名/密码就足够了)。
请推荐最简单的方法来做到这一点。
或者除了 Azure 网站之外,是否有更好的选择来提供静态内容?
通过利用 ASP.NET 的身份验证和授权与 IIS 集成,可以实现使用静态用户名和密码的非常简单的身份验证形式,如本文所述:将 ASP.NET 身份验证和授权规则应用于静态内容与 IIS 7.0 的集成管道功能。
以这个示例GitHub项目为例。相关的代码是这个 Web.config 文件,您应该将它放在根目录中(这将是公共的):
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false" />
<authentication mode="Forms">
<forms>
<credentials passwordFormat="Clear">
<user name="Alice" password="secret" />
</credentials>
</forms>
</authentication>
<!-- Unless specified in a sub-folder's Web.config file,
any user can access any resource in the site -->
<authorization>
<allow users="*" />
</authorization>
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
<add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
</modules>
</system.webServer>
</configuration>
您可以将这个 Web.config 文件放在子目录中(这将受到限制):
<?xml version="1.0"?>
<configuration>
<system.web>
<!-- Anonymous users are denied access to this folder (and its subfolders) -->
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
您还需要一个带有 HTML 表单和服务器端身份验证逻辑的Login.aspx文件。有关示例,请参见示例项目中的 Login.aspx。
这样,您将能够在根级别托管公共文件和在子目录中托管私有文件。如果您想保护甚至根级别,只需相应地调整授权规则即可。
有关配置选项的文档,请参阅这些 MSDN 页面:
这是一个以前回答过的老问题,但如果您正在寻找不需要代码或配置更改的最简单的解决方案,您可以使用 Azure 网站身份验证/授权(免责声明,我帮助构建了此功能)。以下是一些链接:
博客文章: http ://azure.microsoft.com/blog/2014/11/13/azure-websites-authentication-authorization/
编辑:这是一篇更新的博客文章,描述了除了默认的 Azure AD 之外,您如何使用社交服务提供商(Twitter、Facebook、Google、Microsoft 帐户):https ://azure.microsoft.com/en-us/blog /announcing-app-service-authentication-authorization/