OAuthOptions.Scope无法分配给

时间:2017-08-19 22:49:41

标签: oauth asp.net-core asp.net-authentication

我正在尝试在我的ASP.NET Core 2.0应用中实施LinkedIn / OAuth身份验证,我需要将范围设置为<serviceTask id="P3_EnviarEmail" name="Enviar Email Inicial" activiti:type="mail"> <extensionElements> <activiti:field name="from"> <activiti:string><![CDATA[info@xxx.om]]></activiti:string> </activiti:field> <activiti:field name="to"> <activiti:string><![CDATA[xxxxx@gmail.com]]></activiti:string> </activiti:field> <activiti:field name="subject"> <activiti:string><![CDATA[Comienzo del Evolutivo]]></activiti:string> </activiti:field> <activiti:field name="html"> <activiti:string><![CDATA[ HERE HTML CODE ],以便我可以使用用户的电子邮件,个人资料图片等。

当我尝试在以下代码中设置范围时,我收到以下错误:

  

无法将属性或索引器“OAuthOptions.Scope”分配给 - 它   只读的。

以下是代码:

{ "r_basicprofile", "r_emailaddress" }

知道如何设置范围吗?

P.S。我试图改编我的ASP.NET Core 1.1中的代码。这段代码在ASP.NET Core 1.1应用程序中运行良好。

1 个答案:

答案 0 :(得分:6)

options语法仅在使用对象初始化时可用。这里,Scope对象不是从您的代码中实例化的,而是由ASP.NET Core直接提供的,因此您无法使用此语法。

好消息是options.Scope.Add("r_basicprofile"); options.Scope.Add("r_emailaddress"); 属性是一个集合(内部,一个哈希集),所以你可以这样做:

options.Scope.Remove("scope")

如果您想摆脱默认范围,可以使用options.Scope.Clear()export class FirstLoginComponent implements OnInit, OnDestroy { isLoading: boolean; Groups: Group[]; constructor( public oidcSecurityService: OidcSecurityService, private router: Router, private firstLoginService: FirstLoginService ) { } ngOnInit(): void { this.getData(); console.log(this.isLoading); } ngOnDestroy(): void { console.log("FirstLogin Destroyed"); } //... private getData() { this.firstLoginService.GetIndex() .subscribe(data => this.Groups = data.Groups, error => this.oidcSecurityService.handleError(error), () => console.log(this.Groups)); }} 将其删除。