我正在尝试使用 docker-compose 文件运行许多服务。首先,我们假设 Docker 版本 20.10.3 在 Red Hat Enterprise Linux 版本 8.3 上运行。
这是 docker-compose 文件:
version: "3.8"
services:
projmssql:
image: "mcr.microsoft.com/mssql/server:2019-latest"
container_name: proj-core-sqlserver
environment:
SA_PASSWORD: "mypassword"
ACCEPT_EULA: "Y"
ports:
- "1401:1433"
volumes:
- type: bind
source: ./data-mssql
target: /var/opt/mssql/data
- type : bind
source: ./log-mssql
target: /var/opt/mssql/log
restart: always
projelastic:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
container_name: proj-core-elastic
environment:
- node.name=es01
- cluster.name=proj-docker-cluster
- discovery.type=single-node
- bootstrap.memory_lock=false
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- path.repo=/usr/share/elasticsearch/backup
- path.logs=/usr/share/elasticsearch/logs
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- …
Run Code Online (Sandbox Code Playgroud) 大家好,我们正在从头开始在Windows Azure上运行ASP.NET MCV 3应用程序.关于身份验证和授权层,我们正在考虑使用访问控制服务.我看了一些关于ACS的文章,我得到了基本的想法,但我仍然有一些疑问.
我的理解是,使用ACS我们将身份验证过程外包给一个或多个身份提供商(IP),基本上我们相信另一个系统(即Microsoft Live ID)来验证我们的用户.基本过程非常简单:在身份验证阶段,我们将用户重定向(ACS执行)到我们的"受信任"IP之一,这会将用户(使用有效令牌)重定向到ACS并最终重定向到我们的应用程序.这里有很多问题......
由于我们不希望所有具有Live ID帐户的用户都可以访问我们的应用程序,因此我认为应该有另一个流程来验证该用户并检查他是否在我们的应用程序中注册.问题是在哪里?在ACS或我们的应用程序中.?
我对此有一个想法,但我不知道这是否是正确的方法:在注册阶段,系统(我们的网络应用程序)询问用户哪个IP(即Live ID,Google,Facebook和我们的应用程序) .)他想用来在应用程序中验证自己.然后用户在IP系统上进行身份验证过程,当他回来时,我们将他的用户名(IP用户名)存储在我们的数据库中.因此,下次在身份验证阶段,我们可以检查该用户是否已在我们的系统中注册.
如果上述理论是正确的,那就意味着我们的应用程序.我们需要建立会员提供商来存储来自IP的用户名和选择我们应用的用户.作为IP.我对么?设计上述过程的最佳做法是什么?
现在让我们来谈谈授权和"角色".它如何与ACS一起使用?ACS是否为每个用户管理多个角色?
我的理解是,使用ACS,您可以创建许多与IP相关的"规则组",而不是单个用户.如果这是正确的,我们如何在我们的应用程序中管理角色中的用户?比方说,我们有多个角色,我们的用户可以与这些角色相关联,我们可以使用ASC来管理吗?
所以最后的问题是:ACS本身是否涵盖了整个身份验证和授权流程?我们还需要使用.net会员提供商吗?为了满足我们的要求,最佳做法是什么?
非常感谢您的贡献.
使用表达式树,我需要以通用方式构建GroupBy.我要使用的静态方法如下:
public static IQueryable<Result> GroupBySelector<TSource>(this IQueryable<TSource> source, String coloumn)
{
//Code here
}
Run Code Online (Sandbox Code Playgroud)
Result类有两个属性:
public string Value { get; set; }
public int Count { get; set; }
Run Code Online (Sandbox Code Playgroud)
基本上我想通过表达式树构建以下Linq查询:
query.GroupBy(s => s.Country).Select(p => new
{
Value = p.Key,
Count = p.Count()
}
)
Run Code Online (Sandbox Code Playgroud)
你会如何实现它?