我正在尝试在我的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应用程序中运行良好。
答案 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));
}}
将其删除。