This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

Repository files navigation

More Authentication Middleware for ASP.NET Core License

This project is an ASP.NET Core middleware that enables an application to support more authentication workflow.

目前支持的授权平台

文档NuGet
360 OAuth2.0 授权
百度 OAuth2.0 授权
豆瓣 OAuth2.0 授权
淘宝 OAuth2.0 授权
腾讯 OAuth2.0 授权
网易 OAuth2.0 授权
微信 OAuth2.0 授权
新浪 OAuth2.0 授权
小米 OAuth2.0 授权
优酷 OAuth2.0 授权
易信 OAuth2.0 授权

更多关于 OAuth 2.0 的信息,可参考 oauth.netOAuth 2.0 中文文档

使用步骤

该项目是根据 ASP.NET Core Security 写的众多账号平台授权登录。

所以,你可以跟 Microsoft.AspNetCore.Authentication.* 下的众多账号授权组件一样使用:

  1. Startup 中的 ConfigureServices 添加配置 Identity、Token、Authentication、CookieAuthentication 等服务
  2. Startup 中的 Configure 里 直接添加配置并使用 这些服务。

示例代码

在这里,就贴关键的部分(以豆瓣为例),有关账号授权的较为完整代码,建议参考官方提供的例子 —— Music Store 或者查看 Security sample

根据文档建议,开发时可使用 Microsoft.Extensions.SecretManager 存储相关数据, 需要在 ConfigureServices 中使用 IConfigurationBuilder.AddUserSecrets()

目前大概有两种方法添加数据,一种是命令行(必须确保 project.jsonuserSecretsId 值唯一);另一种是在 Visual Studio 右键项目中,点击“管理用户机密”,会自动添加 userSecretsId

  1. Visual Studio 2015 默认没有将 dnx runtime 放入 %PATH% 中,所以必须先将其放入,或者使用 dnvm upgrade 自动添加
  2. dnu commands install Microsoft.Extensions.SecretManager
  3. user-secret set Authentication:Douban:ApiKey 00d***060
  4. user-secret set Authentication:Douban:Secret 39**b4

打开项目机密文件,可以得到类似这样的 json 结构:

{
"Authentication:Douban:ApiKey": "00d***060",
"Authentication:Douban:Secret": "39**b4"
}
...// ConfigureServices 下services.AddAuthentication(options =>options.SignInScheme=CookieAuthenticationDefaults.AuthenticationScheme);
...// Configure 下app.UseDoubanAuthentication(newDoubanOption{ApiKey=Configuration["Authentication:Douban:ApiKey"],Secret=Configuration["Authentication:Douban:Secret"]});
...

注意

目前,仅在 ASP.NET Core beta6+ 有效; 最后要说的,也是显而易见的是,目前的授权模式为 Server-side

About

More Middlewares for authorization of web apps for ASP.NET Core

Resources

Stars

26 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages