创建自定义安全令牌提供程序
<|begin▁of▁sentence|>---
title: "How to: Create a Custom Security Token Provider"
ms.date: "03/30/2017"
dev_langs:
- "csharp"
- "vb"
helpviewer_keywords:
- "security [WCF], providing credentials"
ms.assetid: db8cb478-aa43-478b-bf97-c6489ad7c7fd
---
# How to: Create a Custom Security Token Provider
This topic describes how to create a new security token provider types and how to integrate the provider with a custom security token manager.
> [!NOTE]
> Create a custom token provider if the tokens provided by the system in the namespace do not meet your requirements.
The security token provider creates a security token representation based on information in the client or service credentials. To use the custom security token provider in Windows Communication Foundation (WCF) security, you must create custom credentials and security token manager implementations.
For more information about custom credentials and security token manager, see [Walkthrough: Creating Custom Client and Service Credentials](../../../../docs/framework/wcf/extending/walkthrough-creating-custom-client-and-service-credentials.md).
For more information about credentials, security token manager, and provider and authenticator classes, see [Security Architecture](https://msdn.microsoft.com/library/16593476-d36a-408d-808c-ae6fd483e28f).
### To create a custom security token provider
1. Define a new class derived from the class.
2. Implement the method. The method is responsible for creating and returning an instance of the security token. The following example creates a class named `MySecurityTokenProvider`, and overrides the method to return an instance of the class. The class constructor requires an instance of the class.
[!code-csharp[c_CustomTokenProvider#1](../../../../samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs#1)]
[!code-vb[c_CustomTokenProvider#1](../../../../samples/snippets/visualbasic/VS_Snippets_CFX/c_customtokenprovider/vb/source.vb#1)]
### To integrate a custom security token provider with a custom security token manager
1. Define a new class derived from the class. (The following example derives from the class, which derives from the class.)
2. Override the method if it is not already overridden.
The method is responsible for returning an instance of the class appropriate for the parameter passed to the method by the WCF security framework. Modify the method to return the custom security token provider implementation (created in the previous procedure) when the method is called with an appropriate token parameter. For more information about the security token manager, see [Walkthrough: Creating Custom Client and Service Credentials](../../../../docs/framework/wcf/extending/walkthrough-creating-custom-client-and-service-credentials.md).
3. Add custom logic to the method to enable it to return the custom security token provider based on the parameter. The following example returns the custom security token provider if the token requirements are satisfied. The requirements include an X.509 security token and message direction (using the token for message output). In all other cases, the code calls the base class to maintain the system-provided behavior.
[!code-csharp[c_CustomTokenProvider#2](../../../../samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs#2)]
[!code-vb[c_CustomTokenProvider#2](../../../../samples/snippets/visualbasic/VS_Snippets_CFX/c_customtokenprovider/vb/source.vb#2)]
## Example
The following shows a complete implementation along with the corresponding implementation.
[!code-csharp[c_CustomTokenProvider#0](../../../../samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs#0)]
[!code-vb[c_CustomTokenProvider#0](../../../../samples/snippets/visualbasic/VS_Snippets_CFX/c_customtokenprovider/vb/source.vb#0)]
## See Also
[Walkthrough: Creating Custom Client and Service Credentials](../../../../docs/framework/wcf/extending/walkthrough-creating-custom-client-and-service-credentials.md)
[How to: Create a Custom Security Token Authenticator](../../../../docs/framework/wcf/extending/how-to-create-a-custom-security-token-authenticator.md)
[Security Architecture](https://msdn.microsoft.com/library/16593476-d36a-408d-808c-ae6fd483e28f)
最新文章
- 车险理赔全攻略:从报案到维修的20个关键细节
- 发动机温度过高需立即停车检查
- 雨天行车必知:雨刮器、排气管与转向系统保养全攻略
- 汽车电磁兼容性设计:从线束布局到滤波技术的核心要点
- 《汽车五大故障灯解析:氧传感器、轮速传感器与胎压监测全指南》
- 电池技术革命与轻量化材料推动汽车能量密度突破
- 高强度钢材+盗抢险:双重守护爱车的安全屏障
- 动力电池技术突破:续航破千公里,快充仅需15分钟
- 汽车引擎轰鸣声在夜晚格外清晰
- 未来汽车三大趋势:自动驾驶、电动化与智能网联的融合
- 未来汽车三大黑科技:智能座舱、固态电池与车路协同
- 出租车、私家车、新能源车最全车险保障方案解析
- 汽车溃缩区设计:高强度钢与复合材料的安全防护之道
- DSRCV2X技术:重塑车联网时代的智能驾驶新体验
- 宝马X5越野性能卓越适合各种地形
- MyBatis入门指南:从零搭建第一个CRUD程序
- 车险理赔全流程指南:从定损到维修的完整解析
- 智能驾驶与电动化革命:未来出行的三大技术趋势
- 自动驾驶技术演进:从L2到L5的产业变革与未来展望
- 激光雷达:自动驾驶的3D慧眼与多传感器融合革命