Формы Аутентификация не работает. Файлы cookie не отправляются на сервер, когда SMF пытается получить доступ к файлам * .ism/Manifest на сервере, для которого требуются определенные роли пользователя.Microsoft Media Platform + Аутентификация форм
Что я делаю: 1. Создайте новый шаблон Silverlight Smooth Streaming с поддержкой RIA WCF. 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>
- Добавить Authentification Сервис и правильный класс пользователя (добавьте 3 реквизита).
- На стороне клиента добавьте в 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), все в порядке. Но когда я меняю mediasource на путь к зоне с ограниченным доступом на моем сервере, я получаю ошибку доступа. На стороне клиента я получаю пользовательские учетные данные успешно.
Скрипач показывает следующую вещь: При попытке доступа к другим методам resctricted ([RequiresAuthentication]) на RIA WCF, клиент посылает Auth печенье, но когда SMFPlayer пытаются доступ к медиа-источника, что печенье wasn`t отправлено.
Что я пропустил?