Вы можете добавить файл JavaScript в ваше приложение Angular, добавив свойство scripts
к своему проекту приложения в файле рабочей области приложения Angular (aka angular.json
в корневом каталоге вашего проекта):
{
"version": 1,
// ...
"projects": {
"my-app": {
// ...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
// ...
"scripts": [
// JavaScript file goes here
"js/le.min.js",
// Note: The `scripts` property accepts an array of objects or an array of strings
// See https://github.com/angular/angular-cli/blob/c5de8e3b0e5c1499a0a17da0208297cd82b36095/packages/angular_devkit/build_angular/src/browser/schema.json#L390-L419 for more info
]
// ...
}
// ...
}
// ...
}
}
// ...
}
[117 ] Кроме того, вы можете установить это с помощью команды ng config
:
# Replace my-app with your actual project name in your angular.json file
ng config projects.my-app.architect.build.options.scripts[0] js/le.min.js
Принятие аутентификации форм, в сервере B приложения web.config, установило атрибут loginUrl на теге форм к Методу действия Контроллера, который лавирует на абсолютном URL прежде, чем перенаправить к серверу A.
Конфигурация на сервере B
<authentication mode="Forms">
<forms loginUrl="/Account/LoginRedirect" />
</authentication>
Метод действия был бы похож
public RedirectResult LoginRedirect(string returnUrl)
{
var requestUrl = HttpContext.Current.Request.Url;
return LoginUrlOnServerA +
"?returnUrl=" +
HttpUtility.UrlEncode(string.Format("http://{0}:{1}{2}",
requestUrl.Host,
requestUrl.Port,
HttpUtility.UrlDecode(returnUrl)));
}
Путем стандартный AuthorizeAttribute работает, путем установки кода состояния ответа на 401, если запрос не аутентифицируется. Это ударяет стандартный ответ модуля аутентификации по умолчанию на несанкционированный запрос. Я предполагаю, что Вы используете аутентификацию на основе форм, которая создала бы URL возврата на основе URL в запросе. В этом случае, вероятно, относительный URL.
Одна вещь, которую Вы могли сделать, вместо того, чтобы полагаться на встроенное поведение, Вы могли реализовать SSOAuthorizeAttribute, который расширяет класс AuthorizeAttribute и переопределяет OnAuthorization. Вы могли затем извлечь loginUrl из элемента форм в веб-конфигурации и создать Ваш собственный RedirectResult и вытянуть returnUrl от HttpContext. Запрос. URL. Свойство AbsoluteUri в параметре AuthorizationContext.
public class SSOAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(
AuthorizationContext filterContext )
{
if (filterContext == null)
{
throw new ArgumentNullException( "filterContext" );
}
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
// get from cached variable from web configuration
string loginUrl = ...
if (filterContext.HttpContext.Request != null)
{
loginUrl += "?ReturnUrl=" + filterContext.HttpContext
.Request
.Url
.AbsoluteUri;
}
filterContext.Result = new RedirectResult( loginUrl );
}
}
}