c # — передать значение на страницу PHP с помощью пользовательского модуля http

У меня есть страница PHP, работающая на IIS8.
Аутентификация осуществляется через ADFS.
Я хотел бы получить доступ к значениям некоторых утверждений в токене SAML пользователя со страницы PHP, но я думаю, что эти значения все равно не сохраняются.
Я попытался создать собственный HttpModule для передачи значений на страницу PHP:

using Microsoft.IdentityModel.Claims;
using System;
using System.Threading;
using System.Web;

public class TestModule : IHttpModule {

public void Init(HttpApplication context) {
context.AuthenticateRequest += Context_AuthenticateRequest;
}

private void Context_AuthenticateRequest(object sender, EventArgs e) {
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
IClaimsPrincipal principal = Thread.CurrentPrincipal as IClaimsPrincipal;
if (principal == null || principal.Identities == null || principal.Identities.Count == 0) {
context.Response.Write("TestModule: cannot get claims.<br/>");
return;
}
IClaimsIdentity identity = principal.Identities[0];
foreach (Claim claim in identity.Claims) {
if (claim.ClaimType == "http://schemas.xmlsoap.org/claims/DisplayName") {
context.Response.Write("TestModule: setting USER_DISPLAY_NAME to " + claim.Value + "<br/>");
Environment.SetEnvironmentVariable("USER_DISPLAY_NAME", claim.Value);
}
}
}

public void Dispose() {
}

}

Это выполняется, и для переменной задано правильное значение.
На странице PHP у меня есть это:

<?php
echo getenv('USER_DISPLAY_NAME');
?>

Но ничего не отображается.

Можно ли передать переменную на страницу PHP с помощью специального модуля?

Есть ли другой более стандартный способ получения значений утверждений ADFS со страницы PHP в IIS?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector