mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-10-22 03:24:29 +08:00
75 lines
2.4 KiB
C#
75 lines
2.4 KiB
C#
//------------------------------------------------------------------------------
|
||
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
|
||
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
|
||
// 源代码使用协议遵循本仓库的开源协议及附加协议
|
||
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
|
||
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
|
||
// 使用文档:https://thingsgateway.cn/
|
||
// QQ群:605534569
|
||
//------------------------------------------------------------------------------
|
||
|
||
using Microsoft.AspNetCore.Components.Authorization;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
|
||
using System.Security.Claims;
|
||
|
||
namespace ThingsGateway.Admin.Application;
|
||
|
||
public class HybridAppService : IAppService
|
||
{
|
||
public HybridAppService(IUserAgentService userAgentService)
|
||
{
|
||
var str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0";
|
||
UserAgent = userAgentService.Parse(str);
|
||
RemoteIpAddress = "127.0.0.1";
|
||
}
|
||
public UserAgent? UserAgent { get; }
|
||
|
||
private static BlazorHybridAuthenticationStateProvider _authenticationStateProvider;
|
||
private static BlazorHybridAuthenticationStateProvider AuthenticationStateProvider
|
||
{
|
||
get
|
||
{
|
||
if (_authenticationStateProvider == null)
|
||
_authenticationStateProvider = ((BlazorHybridAuthenticationStateProvider)App.RootServices.GetService<AuthenticationStateProvider>());
|
||
|
||
return _authenticationStateProvider;
|
||
}
|
||
}
|
||
|
||
private ClaimsPrincipal? user;
|
||
|
||
public ClaimsPrincipal? User
|
||
{
|
||
get { return user; }
|
||
internal set
|
||
{
|
||
if (user == value)
|
||
{
|
||
return;
|
||
}
|
||
user = value;
|
||
AuthenticationStateProvider.UserChanged(user);
|
||
}
|
||
}
|
||
|
||
public string? RemoteIpAddress { get; }
|
||
|
||
public string GetReturnUrl(string returnUrl)
|
||
{
|
||
return returnUrl;
|
||
}
|
||
|
||
public Task LoginOutAsync()
|
||
{
|
||
User = new ClaimsPrincipal(new ClaimsIdentity());
|
||
return Task.CompletedTask;
|
||
}
|
||
|
||
public Task LoginAsync(ClaimsIdentity claimsIdentity, int expire)
|
||
{
|
||
User = new ClaimsPrincipal(claimsIdentity);
|
||
return Task.CompletedTask;
|
||
}
|
||
}
|