8

我们有一个托管静态站点(只是一些 HTML、CSS、Javascript)的 Azure 网站,然后通过 AJAX 调用与我们的 Azure 移动服务通信。

我们想为这个站点添加一些非常简单的身份验证(只需一个静态用户名/密码就足够了)。

请推荐最简单的方法来做到这一点。

或者除了 Azure 网站之外,是否有更好的选择来提供静态内容?

4

2 回答 2

15

通过利用 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 页面:

于 2013-07-12T18:40:06.960 回答
4

这是一个以前回答过的老问题,但如果您正在寻找不需要代码或配置更改的最简单的解决方案,您可以使用 Azure 网站身份验证/授权(免责声明,我帮助构建了此功能)。以下是一些链接:

博客文章: http ://azure.microsoft.com/blog/2014/11/13/azure-websites-authentication-authorization/

演示视频: http ://azure.microsoft.com/en-us/documentation/videos/azure-websites-easy-authentication-and-authorization-with-chris-gillum/

编辑:这是一篇更新的博客文章,描述了除了默认的 Azure AD 之外,您如何使用社交服务提供商(Twitter、Facebook、Google、Microsoft 帐户):https ://azure.microsoft.com/en-us/blog /announcing-app-service-authentication-authorization/

于 2015-01-23T17:26:56.017 回答