gpt4 book ai didi

c# - Microsoft Media Platform + 表单例份验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:20 25 4
gpt4 key购买 nike

表单例份验证不起作用。当 SMF 尝试访问需要特定用户角色的服务器上的 *.ism/Manifest 文件时,不会将 Auth cookie 发送到服务器。

我做什么:1. 创建支持 RIA WCF 的新 Silverlight Smooth Streaming 模板。2.配置web.config:

<connectionStrings>
<add name="ApplicationServices" connectionString="Data Source=[SERVER];Initial Catalog=[CATALOG];User ID=[USER];Pwd=[PASSWORD];" providerName="System.Data.SqlClient" />

<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
<properties>
<add name="Gender" />
<add name="Birthday" />
<add name="AvatarPath" />
</properties>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
  1. 添加身份验证服务并更正用户类(添加 3 个属性)。
  2. 在客户端将此添加到 app.xaml.cs:
     public App()
{
//Default things...
InitializeWebContext();
}

private void InitializeWebContext()
{
WebContext webContext = new WebContext();
var fa = new FormsAuthentication();
var ac = new AuthenticationDomainService1();
fa.DomainContext = ac;
fa.Login(new LoginParameters("user", "password"), (y) =>
{
if (!y.HasError)
{
this.RootVisual = new MainPage();
}
}, null);
webContext.Authentication = fa;
ApplicationLifetimeObjects.Add(webContext);
Resources.Add("WebContext", WebContext.Current);
}

访问受目标目录中的 web.config 文件限制:

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Role_name" />
<deny users="*" />
</authorization>
</system.web>
</configuration>

此角色中存在用户。

当我使用 Xaml (Big Bunny) 中指定的默认视频时 - 一切正常。但是,当我将媒体源更改为服务器上限制区域的路径时,出现访问错误。在客户端,我成功获得了用户凭据。

Fiddler 显示下一件事:当我尝试访问 RIA WCF 上的另一个受限方法 ([RequiresAuthentication]) 时,客户端发送 Auth cookie,但是当 SMFPlayer 尝试访问媒体源时,该 cookie 没有发送。

我错过了什么?

最佳答案

我找到了一些解决方法:如果将流文件传输到子目录中,并限制对其的访问(而不是包含“ism”文件的目录)。 Manifest 将发给匿名用户,但数据流仅用于注册(当玩家尝试触摸数据流时,它会成功附加身份验证 cookie)。

关于c# - Microsoft Media Platform + 表单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com